Enriching a Meta-Language With Higher-Order Features
نویسندگان
چکیده
Various meta-languages for the manipulation and specification of programs and programming languages have recently been proposed. We examine one such framework, called natural semantics, which was inspired by the work of G. Plotkin on operational semantics and extended by G. Kahn and others at INRIA. Natural semantics makes use of a first-order meta-language which represents programs as first-order tree structures and reasons about these using natural deduction-like methods. We present the following three enrichments of this meta-language. First, programs are represented not by first-order structures but by simply typed λ-terms. Second, schema variables in inference rules can be higher-order variables. Third, the reasoning mechanism is explicitly extended with proof methods which have proved valuable for natural deduction systems. In particular, we add methods for introducing and discharging assumptions and for introducing and discharging parameters. The first method can be used to prove hypothetical propositions while the second can be used to prove generic or universal propositions. We provide several example specifications using this extended metalanguage and compare them to their first-order specifications. We argue that our extension yields a more natural and powerful meta-language than the related first-order system. We outline how this enriched metalanguage can be compiled into the higher-order logic programming language λProlog. Comments University of Pennsylvania Department of Computer and Information Science Technical Report No. MSCIS-88-45. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/695 Enriching A Meta-Language With Higher-Order Features MS-CIS-88-45 LINC LAB 118 John Hannan Dale Miller Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania Philadelphia, PA 19104-6389
منابع مشابه
Directly reflective meta-programming
Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional man...
متن کاملCommas Recovery with Syntactic Features in French and in Czech
Automatic speech transcripts can be made more readable and useful for further processing by enriching them with punctuation marks and other meta-linguistic information. We study in this work how to improve automatic recovery of one of the most difficult punctuation marks, commas, in French and in Czech. We show that commas detection performances are largely improved in both languages by integra...
متن کاملA Novel Approach to Conditional Random Field-based Named Entity Recognition using Persian Specific Features
Named Entity Recognition is an information extraction technique that identifies name entities in a text. Three popular methods have been conventionally used namely: rule-based, machine-learning-based and hybrid of them to extract named entities from a text. Machine-learning-based methods have good performance in the Persian language if they are trained with good features. To get good performanc...
متن کاملThe effects of task complexity on Chinese learners’ language production: A synthesis and meta-analysis
The present meta-analysis was conducted to provide a quantitative measure of the overall effects of task complexity on Chinese EFL learners’ language production. Based on the strict inclusion criteria, 12 primary studies were synthesized according to key features. Eleven of them were meta-analyzed to investigate effects of raising the resource-directing task comple...
متن کاملProgramming with Sets and Multisets
I briefly discuss the facilities for programming with sets and multisets provided by the programming language Escher, which is a general-purpose, declarative language that integrates the best features of both functional and logic programming languages. Escher has types and modules, higher-order and meta-programming facilities, concurrency, and declarative input/output. The main design aim is to...
متن کامل